// Copy-and_pasted from partition in qsort_1a1.c // function name partition is renamed to part. // parameters l and r are changed to left and right respectively. size_t part(int * data, int left, int right) { int i = left + 1, j = right; int pivot = data[left]; while (i <= j) { while (pivot < data[j]) j--; if (j == left) return left; while (i < right && pivot > data[i]) i++; if (i == j) break; if (i < j) swap(&data[i], &data[j]); } swap(&data[left], &data[j]); return j; }